export type Optional<T> = T | undefined;

export enum Visibility {
    Visible = 'visible',
    Hidden = 'hidden',
    None = 'none',
    Collapse = 'collapse',
}

export interface IRowAttributes {
    space?: string | number;
}

export enum VerticalAlign {
    Top = "start",
    Center = "center",
    Bottom = "end"
}

export interface IColumnAttributes {
    space?: string | number;
}

export enum HorizontalAlign {
    Start = 'start',
    Center = 'center',
    End = 'end'
}

export enum FlexDirection {
    Row = 'row',
    Column = 'column',
    RowReverse = 'row-reverse',
    ColumnReverse = 'column-reverse',
}

export enum FlexAlign {
    SpaceAround = 'space-around',
    SpaceBetween = 'space-between',
    SpaceEvenly = 'space-evenly',
    Start = 'start',
    End = 'end',
    Center = 'center',
}

export interface IFlexAttributes {
    direction?: FlexDirection;
    justifyContent?: FlexAlign;
    space?: string | number;
}